public class maxArea {
    /**
     * 盛最多水的容器，给定一个长度n的整数数组height。存在n条垂线，
     * 第i条的两个端点是（i,0）;(i,height);
     * 找出其中的两条线，使得他们和x轴共同构成的区域，可以容纳最多的水的容量
     * @author ShakeJ
     * @date 2024/3/18
     */
    public static int method(int[] heights){
        // 利用双指针
        int ans=0;
        int left=0;
        int right=heights.length-1;
        while(left<right){
            int a = (right-left)*Math.min(heights[left], heights[right]);
            ans = Math.max(ans, a); //最后返回的面积结果

            if(heights[left]<heights[right]){ //我们需要的是最大的left，默认的是下一个比当前的大
                left++;
            }else{
                right--;
            }
        }
        return ans;
    }

    public static void main(String[] args) {
        int []a = {1, 8, 6, 2, 5, 4, 8, 3, 7};
        System.out.println(method(a));
    }
}
